The present invention relates to service coordination, and in particular, to modeling service interactions as message choreographies.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Enterprise Resource Planning (ERP) software supports business processes for whole companies, with SAP AG being a leading provider of ERP software. ERP software integrates many organizational parts and functions into one logical software system, posing unique challenges to software development and especially testing. Such software systems are typically very complex. Service-oriented architecture (SOA) is regarded as a next evolutionary step to cope with the software complexity of ERP systems where monolithic approaches are not applicable anymore. SAP makes it easy to adopt SOA by delivering SOA-enabled software, SOA methodology guidelines, and professional services. In SAP's approach, independent business components exhibit enterprise services that can be composed individually to implement customized business processes. For this service integration, which takes place on a higher level of abstraction than component development, we observed several complex service interactions.
To address the complexity of those interactions, choreography languages have emerged. According to the W3C Web Service Glossary, “a choreography defines the sequence and conditions under which multiple cooperating independent agents exchange messages in order to perform a task to achieve a goal state”. A choreography describes the interaction protocol from the perspective of a global observer between a set of loosely coupled components communicating over message channels.
Choreography models play an important role in SOA development and can provide a basis for ensuring quality over three use cases: design, verification and testing.
Several choreography modeling languages have emerged in the last few years. They vary in several regards such as abstraction level, formal grounding, target users, etc. Some of the most prominent languages include WS-CDL (Web Services Choreography Description Language), BPMN (Business Process Modeling Notation), BPEL4Chor and Let's Dance.
WS-CDL is a choreography language that targets the implementation level and builds on WSDL. It uses an XML-based textual syntax and allows the specification of message types, guards and conditions. It is formal as it is based on the Global Calculus.
BPMN, BPEL4Chor and Let's Dance focus on high-level service interaction modeling in early design phases and targets business analysts.
Other modeling constructs have been proposed for choreography modeling, such as Petri-nets, message sequence charts and communicating state machines. Like BPMN, BPEL4Chor and Let's Dance they are able to specify either global or stitched local choreography models.
Through evaluation, it was observed that these choreography languages do not simultaneously fulfill some noteworthy requirements regarding the software development activities of design, verification and testing. This is mainly due to high abstraction level, imprecise semantics, lack of a formal foundation, assumption of ideal channels, lack of termination symbols, lack of racing detection during message exchange, etc. This means that various models have to be created for each use case using different languages, which is not very efficient on a large industrial scale and further may lead to inconsistencies between the various models.